From db93090ea87ef549df72e98a87994918713f1227 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 17 Jun 2021 08:42:03 -0400 Subject: [PATCH] menutrackeritem: Be more careful with accel changes In some cases (such as when getting a new parent), the action muxer doesn't know exactly which detailed actions have changed accels, so we call primary_accel_changed with just an action name. Make the menu tracker item handle that case by matching either against the detailed name or the the action name. --- gtk/gtkmenutrackeritem.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gtk/gtkmenutrackeritem.c b/gtk/gtkmenutrackeritem.c index 134831fda6..4e191221e2 100644 --- a/gtk/gtkmenutrackeritem.c +++ b/gtk/gtkmenutrackeritem.c @@ -463,8 +463,12 @@ gtk_menu_tracker_item_primary_accel_changed (GtkActionObserver *observer, const char *action_and_target) { GtkMenuTrackerItem *self = GTK_MENU_TRACKER_ITEM (observer); + const char *action; - if (g_str_equal (action_and_target, self->action_and_target)) + action = strrchr (self->action_and_target, '|') + 1; + + if ((action_and_target && g_str_equal (action_and_target, self->action_and_target)) || + (action_name && g_str_equal (action_name, action))) g_object_notify_by_pspec (G_OBJECT (self), gtk_menu_tracker_item_pspecs[PROP_ACCEL]); } -- 2.30.2